/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-06-07 14:35:02 +0000 (Thu, 07 Jun 2012) $
  Revision     : $Revision: 51 $
*******************************************/

package mensaje;

import java.io.Serializable;
import java.util.ResourceBundle;

/**
 * Administra los mensajes enviados al usuario.
 * <P>
 * Esta clase es la encargada de administrar el 
 * acceso a los catalogos de mensaje para etiquetar 
 * los textos usados en la aplicacion.
 * 
 * @author jose.lara 07.06.2012
 */
public final class Mensaje implements Serializable {
    private static final long serialVersionUID = 2754288595258139746L;
    
    private static final String NOMBRE_CATALOGO         = "mensaje.catalogo";
    private static volatile ResourceBundle catalogo      = null;
    
    private Mensaje() {
        //Imposible instanciar
    }
    
    public static String getMensaje(String llave) {
        String mensaje = null;
        
        mensaje = getCatalogo().getString(llave);
        
        return mensaje;
    }
    
    public static String getMensaje(String llave, Object ... argumentos) {
        String mensaje = null;
        
        mensaje = getCatalogo().getString(llave);
        mensaje = String.format(mensaje, argumentos);
        
        return mensaje;
    }
    
    private static ResourceBundle getCatalogo() {
        if(catalogo == null) {
            catalogo = ResourceBundle.getBundle(NOMBRE_CATALOGO);
        }
        return catalogo;
    }
}
